iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0

前言、摘要

在增加了資料庫的同時,我們發現原本放置Tag的排版跑掉了,因此我們將會對tag進行分類。既然都要修改資料庫了,我們就重新檢視一次目前的資料庫,看看有什麼要修改的,並繪製資料庫的結構圖,方便之後維護使用。


概念說明

今天預計會將Tag分成三種類別:素別(vegan_style)、食物類型(category)、食物風格(food_style

因此需要新增group這個欄位,並且設定固定的選項。

最後我們會把目前資料庫的內容會製成圖。


本日成果

Untitled

在新增了所有Tag之後,我們發現版面變成這樣:

因此我們要把Tag分成三個類型。

新增Tag欄位

我們將Tag改成以下程式碼:

class Tag(models.Model):
    vegan_style = 'V'
    category = 'C'
    food_style = 'F'
    name = models.CharField(max_length=10)
    value = models.CharField(max_length=30, default="None")
    group = models.CharField(max_length=30, default=food_style, choices=[(vegan_style, 'vegan_style'),
                                                                         (category, 'category'),
                                                                         (food_style, 'food_style'), ])

這邊我們把之前的style改成value,更符合其功能。並新增group用來之後前端分類使用。

這邊我們使用了之前沒有用過的參數choices,使用這個參數的時候我們需要用list裝入選項,每個選項是一個tuple,包含兩項值,第一欄是Model中的實際值,第二欄則是開發者可讀的名稱。

記得如果有修改資料庫就需要在Terminal裡面執行以下兩個指令

python manage.py makemigrations
python manage.py migrate

打開admin就可以看到新的資料內容

admin.png

最後我們把目前的資料庫內容會製成圖表:

TNFood資料結構.drawio.png


參考資料

  1. 模型欄位參考|詹戈文檔|詹戈 (djangoproject.com)

台南不需要米其林

  1. 專案網址
  2. 專案程式碼
  3. 專案文件與鐵人賽文章
  4. 參賽團隊 台南巷弄美食獵人


上一篇
Day28 美食商店看板 使用Google 廣告
下一篇
Day30 露出水面 SEO
系列文
台南不需要米其林30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言